package com.tedu.day02.oop;

/**
 * this关键字---super关键字---使用方法完全一致
 * 不需要继承---当前类，代指当前
 * 使用方式：调用当前类的属性、方法、构造器
 *          this.属性      【当前类的属性赋值】
 *                         出现方法中
 *                         区别当前类的属性与参数“名称”一致
 *                    this.方法
 *                    this()     多个有构造器
 *
 *                    笔试题：this跟super关键字区别
 *                    this 调用本类属性、方法、构造器
 *                    super调用父类的属性、方法、构造器、存在继承关系，使用super
 *                    this()与super()--传递参数：赋值
 *                    this()调用本类的其他构造器--构造器首行
 *                    super()调用父类的其他构造器--子类构造器首行
 *                    请问this()与super()可以同时出现在对象的构造器当中吗  不能
 */
public class This关键字 {
    int i; //属性---很少赋值【声明未赋值】---构造器或者方法中赋值
    int j; //属性---很少赋值【声明未赋值】---构造器或者方法中赋值
    public This关键字(int i, int j) {
        this.i = i;
        this.j = j;
    }
    //构造器：有参   需求：创建1个参数对象，给i跟j赋值【跟super()一样】
    public This关键字(int i) {
        this.i = i;  //常见 this.属性【当前类下属性】=参数
        //赋值 this.i=1;
        this.j = j;
//有参构造器
    }
    //方法--this.方法
    public void testI(){
        System.out.println("我是I");
    }
    public void testJ(){//调取--输出：我是I 我是J
        this.testI();
        System.out.println("我是J");
    }
    public static void main(String[] args) {
        System.out.println(new This关键字(1).j);//属性没有输出语句
        new This关键字(1).testJ();//方法有输出语句
    }
}























